package com.toommi.refuse.service;

import com.toommi.refuse.entity.RefuseType;
import com.toommi.refuse.exception.RefuseTypeException;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * ..
 * 垃圾分类类型维护，维护二级分类
 *
 * @author yangg
 * @since 2019-07-26 10:00
 */
public interface RefuseTypeService {

    /**
     * 添加分类
     *
     * @param refuseType 分类信息
     */
    void addType(RefuseType refuseType) throws RefuseTypeException;

    /**
     * 删除指定分类信息
     *
     * @param id 分类信息id
     */
    void deleteType(long id);

    /**
     * 根据大类查找分类信息
     *
     * @param code 大类code
     * @return 大类下分类信息
     */
    List<Map<String, Object>> findTypes(String code);

    /**
     * 查询分类详情
     *
     * @param id 分类id
     * @return 分类详情
     */
    RefuseType findDetail(long id);

    /**
     * 根据分类ID获取细分类信息
     *
     * @param id
     * @return
     */
    List<Map<String, Object>> getTypesInfo(String id);

    /**
     * 修改回收类价格
     *
     * @param request
     */
    void updatejfgz(HttpServletRequest request);

    /**
     * 功能描述: 获取所有分类名称
     *
     * @param: []
     * @return: java.util.List
     * @auther: HuangBo
     * @date: 2019/9/12 0012 下午 15:44
     */
    List<Map<String,Object>> getTypeNameList();

    /**
     * 功能描述: 获取所有分类列表
     *
     * @param: []
     * @return: java.util.List<com.toommi.refuse.entity.RefuseType>
     * @auther: HuangBo
     * @date: 2019/9/13 0013 上午 7:53
     */
    Object getTypeList(int page, int limit);

    /**
     * 功能描述: 根据id查找分类信息
     * @param: [id]
     * @return: com.toommi.refuse.entity.RefuseType
     * @auther: HuangBo
     * @date: 2019/9/15 0015 上午 10:32
     */
    RefuseType findOneById(Integer id);

    /**
     * 功能描述: 根据id修改分类信息
     * @param: [type]
     * @return: void
     * @auther: HuangBo
     * @date: 2019/9/15 0015 上午 11:38
     */
    void updateTypeById(RefuseType type);

    /**
     * 功能描述: 新增垃圾分类
     * @param: [refuseType]
     * @return: void
     * @auther: HuangBo
     * @date: 2019/9/16 0016 上午 10:23
     */
    void addRefuseType(RefuseType refuseType) throws RefuseTypeException;

    /**
     * 功能描述: 根据id删除垃圾分类
     * @param: [id]
     * @return: int
     * @auther: HuangBo
     * @date: 2019/9/16 0016 上午 10:50
     */
    int deleteTypeById(Integer id);

    /**
     * 功能描述: 根据条件查询分类列表
     * @param: [type]
     * @return: java.lang.Object
     * @auther: HuangBo
     * @date: 2019/9/16 0016 下午 12:43
     */
    Object findTypesByCondition(int page,int limit,String type);


}
